<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>
  
  // const obj = {
  //   name:"张三",
  //   age:20,
  //   sex:"男",
  //   child:{
  //     name:"小张"
  //   }
  // }

  // for(let i in obj){
  //   console.log(i, obj[i]);
  // }

  // 获取对象所有的key
  // console.log(Object.keys( obj ))
  // 获取对象所有的value
  // console.log(Object.values( obj ))

  // ======

  // const obj = {
  //   name:"张三",
  //   age:20,
  //   sex:"男",
  //   child:{
  //     name:"小张"
  //   }
  // }

  // 创建一个新对象，并修改对象的原型链指向传入的对象
  // const obj2 = Object.create( obj );
  // console.log(obj2);
  // console.log(obj2 === obj);

  // obj2.name = "张张三";
  // obj2.__proto__.name = "hahah";

  // console.log(obj2.name);
  // console.log(obj2.child.name);
  // console.log(obj2.age);
  // console.log(obj2.sex);

  // =====

  // const obj = {
  //   name:"张三",
  //   age:20,
  //   sex:"男",
  //   child:{
  //     name:"小张"
  //   }
  // }

  // const o = {
  //   chinese: 89,
  //   english: 60,
  //   math: 98,
  //   name: "root"
  // }
  
  // 将第二个对象参数合并到第一个对象参数，并返回合并之后的老对象
  // Object.assign(obj, o);


  // console.log(obj);


  // ========


  // const arr = [];
  // console.log(Object.getPrototypeOf( arr ) === arr.__proto__);

  // function Parent(){
  //   this.name = "parent"
  // }
  // function Child(){
  //   this.name = "child"
  // }
  // Child.prototype = new Parent()
  // function Fn(){
  //   this.name = "fn";
  // }
  // Fn.prototype = new Child();

  // const f = new Fn();

  // 获取指定对象的原型链
  // console.log( Object.getPrototypeOf( f ) );


  // =======

  // const obj = {
  //   name:"admin"
  // }
  // const oParent = {
  //   name:"大Admin"
  // }

  // 修改第一个对象参数的原型链指向第二个对象参数
  // Object.setPrototypeOf(obj, oParent);

  // console.log(obj);


  // ========


  // 判断两个数据是否相等
  // 注意：在Object.is方法中NaN和NaN相等
  // console.log(Object.is("hello", "hello"));
  // console.log(Object.is("123", 123));
  // console.log(Object.is({}, {}));
  
  // console.log(Object.is(NaN, NaN));



  


  





  

</script>
</html>